// art-template
// art-template 不仅可以在浏览器使用，也可以在 node 中使用

// 安装：
//      npm install art-template
//      该命令在哪执行，就会把包下载到哪里，默认会下载到 node_modules 目录中
//      node_modules 不要改，也不支持改。

// 在 Node 中使用 art-template 模板引擎
// 模板引擎最早是诞生于服务器领域,后来才发展到前端
// 
// 1. 安装 npm install art-template
// 2. 在需要使用的文件模块中加载 art-template
//      只需要使用 require 方法加载就可以了：require('art-template')
//      参数中 art-template 就是你下载的包的名字
//      也就是说你 install 的名字是什么，则你 require 中的就是什么
// 3. 查文档，使用模板引擎的 API
// 
var fs = require('fs')
var template = require('art-template')

// 这里不是浏览器，在 node 中不可以这样用：
// template('script 标签 id', {对象})

// 在 node 中
// var tplStr = `
//     <!DOCTYPE html>
//     <html lang="en">
//     <head>
//         <meta charset="UTF-8">
//         <meta name="viewport" content="width=device-width, initial-scale=1.0">
//         <title>Document</title>
//     </head>
//     <body>
//         <p>大家好，我叫： {{ name }}</p>
//         <p>我今年 {{ age }} 岁了</p>
//         <h1>我来自 {{ province }}</h1>
//         <p>我喜欢：{{each hobbies}} {{ $value }} {{ /each }}</p>
//     </body>
//     </html>
//     `
fs.readFile('./tpl.html', function (err, data) {
    if (err) {
        return console.log('读取文件失败')
    }
    // data 默认读取到的是二进制数据
    // 而模板引擎的 render 方法需要接收的是字符串
    // 所以要转为字符串，才可以给模板引擎使用
    data.toString()

    var ret = template.render(data.toString(), {
        title: '个人信息',
        name: 'Jack',
        age: 18,
        province: '北京',
        hobbies: [
            '写代码',
            '唱歌',
            '打游戏'
        ],
        foo: 666
    })

    console.log(ret)
})